package leetcode_401_500;

import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class LeeCode_454 {
    public static void main(String[] args) {
        System.out.println(fourSumCount(new int[]{1, 2}, new int[]{-2, -1}, new int[]{-1,2},new int[]{0,2}));
    }
    private static int fourSumCount(int[] nums1, int[] nums2, int[] nums3, int[] nums4) {
        int n = nums1.length;
        Map<Integer, Integer> map = new HashMap<>();
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < n; j++) {
                int sum = nums1[i] + nums2[j];
                map.put(sum, map.getOrDefault(sum, 0) + 1);
            }
        }
        Map<Integer, Integer> map2 = new HashMap<>();
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < n; j++) {
                int sum = nums3[i] + nums4[j];
                map2.put(sum, map2.getOrDefault(sum, 0) + 1);
            }
        }
        int ans = 0;
        Set<Integer> set = map.keySet();
        for (Integer s1 : set) {
            if (map2.containsKey(-s1)){
                ans += map.get(s1) * map2.get(-s1);
            }
        }
        return ans;
    }
}
